package com.ruicar.afs.cloud.manage.api.feign.cust;

import com.ruicar.afs.cloud.common.core.util.IResponse;
import com.ruicar.afs.cloud.manage.api.dto.*;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

import java.math.BigDecimal;
import java.util.List;

@FeignClient(value = "${com.ruicar.service-names.manage-server}")
public interface CustChangeFeign {

	/**
	 * 查询银行到账信息
	 * @author ZC.GUO
	 * @param id 银行到账id
	 * @return
	 */
	@ApiOperation("查询银行到账信息")
	@PostMapping(value = "bankArriveManagement/getBankArriveInfo")
	public IResponse<BankArriveInfoDto> getBankArriveInfo(@RequestParam("id") Long id);


	/**
	 * 根据合同编号查询提前结清记录
	 * @author ZC.GUO
	 * @param contractNos 合同编号字符串
	 * @return
	 */
	@ApiOperation("根据合同编号查询提前结清记录")
	@PostMapping(value = "staySettle/getPrepaymentRecordByContractNos")
	IResponse<List<PrepaymentRecordDto>> getPrepaymentRecordByContractNos(@RequestParam("contractNos") String contractNos);
	/**
	 * 根据合同编号查询提前结清应收利息
	 * @author ZC.GUO
	 * @param contractNo 合同编号字符串
	 * @return
	 */
	@ApiOperation("根据合同编号查询提前结清记录")
	@PostMapping(value = "staySettle/getPrepaymentInterestByContractNo")
	IResponse<BigDecimal> getPrepaymentInterestByContractNo(@RequestParam("contractNo") String contractNo);
	/**
	 * 还款银行卡变更审批状态查询
	 * @author ZC.GUO
	 * @param contractNos 合同编号字符串
	 * @return
	 */
	@ApiOperation("还款银行卡变更审批状态查询")
	@PostMapping(value = "bankCardChange/bankCardChangeStatus")
	IResponse bankCardChangeStatus(@RequestParam("contractNos") String contractNos);
	/**
	 * 查询提前还款的列表信息
	 * @author ZC.GUO
	 * @return
	 */
	@ApiOperation("查询提前还款的列表信息")
	@PostMapping(value = "staySettle/getPrepaymentRecordInfo")
	IResponse<List<PrepaymentInfoDto>> getPrepaymentRecordInfo();
	/**
	 * 提前还款报价失效
	 * @author ZC.GUO
	 * @param contractNo 合同编号
	 * @return
	 */
	@ApiOperation("提前还款报价失效")
	@PostMapping(value = "staySettle/prepaymentRecordInvalid")
	IResponse<List<PrepaymentInfoDto>> prepaymentRecordInvalid(@RequestParam("contractNo") String contractNo);

}
	
